In the provisioning of cloud workloads, virtual machines (VMs) are deployed to the cloud to host middleware services and binary files for middleware services or applications are distributed to the virtual machines (VMs). One existing approach to the distribution of binary files is to pre-package a VM template with a virtual disk that includes the binary files. For example, different hypervisors for creating and running the VM template may be offered that are fully separate from the other and have their own set of virtual disks. Furthermore, each version of the hypervisors may have a subset of images for different levels, resulting in a large matrix of various virtual disk levels that must be managed carefully at build time and provisioning time.
Another existing approach is to create a common virtual disk template that contains only a small subset of common function such as an operating system (OS) and other common monitoring packages and does not contain all the binary files for middleware services and applications. At the time of deploying a VM, the common image is provisioned from the common virtual disk template to the cloud and the binary files are downloaded from elsewhere via network connection to the new VM.